const { body } = require('express-validator');

// 添加发货单验证规则
const addDeliveryOrderSchema = [
    body('delivery_date')
        .notEmpty()
        .withMessage('发货日期不能为空')
        .isISO8601()
        .withMessage('发货日期格式不正确'),
    body('courier_id')
        .optional({ nullable: true })
        .isInt()
        .withMessage('快递公司ID必须是整数'),
    body('courier_name')
        .optional({ nullable: true })
        .isLength({ max: 100 })
        .withMessage('快递公司名称长度不能超过100个字符'),
    body('tracking_number')
        .optional({ nullable: true })
        .isLength({ max: 100 })
        .withMessage('快递单号长度不能超过100个字符'),
    body('delivered_by')
        .optional({ nullable: true })
        .isLength({ max: 50 })
        .withMessage('发货人长度不能超过50个字符'),
    body('notes')
        .optional({ nullable: true })
        .isLength({ max: 500 })
        .withMessage('备注长度不能超过500个字符'),
    body('order_ids')
        .optional({ nullable: true })
        .isArray()
        .withMessage('订单ID列表必须是数组')
];

// 更新发货单验证规则
const updateDeliveryOrderSchema = [
    body('delivery_id')
        .notEmpty()
        .withMessage('发货单ID不能为空')
        .isInt()
        .withMessage('发货单ID必须是整数'),
    body('delivery_date')
        .optional()
        .isISO8601()
        .withMessage('发货日期格式不正确'),
    body('courier_id')
        .optional({ nullable: true })
        .isInt()
        .withMessage('快递公司ID必须是整数'),
    body('courier_name')
        .optional({ nullable: true })
        .isLength({ max: 100 })
        .withMessage('快递公司名称长度不能超过100个字符'),
    body('tracking_number')
        .optional({ nullable: true })
        .isLength({ max: 100 })
        .withMessage('快递单号长度不能超过100个字符'),
    body('delivered_by')
        .optional({ nullable: true })
        .isLength({ max: 50 })
        .withMessage('发货人长度不能超过50个字符'),
    body('notes')
        .optional({ nullable: true })
        .isLength({ max: 500 })
        .withMessage('备注长度不能超过500个字符'),
    body('order_ids')
        .optional({ nullable: true })
        .isArray()
        .withMessage('订单ID列表必须是数组')
];

module.exports = { 
    addDeliveryOrderSchema,
    updateDeliveryOrderSchema
};